package twopoint;

/**
 * 给你一个数组 nums 和一个值 val，你需要 原地 移除所
 * 有数值等于 val 的元素，并返回移除后数组的新长度。
 * 不要使用额外的数组空间，你必须仅使用 O(1) 额外空间并
 * 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数
 * 组中超出新长度后面的元素。
 * 1 2 3 3 5 6 7
 */
public class LeetCode_27 {
    public static void main(String[] args) {
        LeetCode_27 leet = new LeetCode_27();
        leet.removeElement(new int[]{1,0,2,2,3,4},2);
    }
    public int removeElement(int[] nums, int val) {
        int fast = 0;
        int slow = 0;
        for (int i = 0; i < nums.length; i++) {
            if(nums[fast] != val){
                nums[slow] = nums[fast];
                slow++;
            }
            fast++;
        }
        return slow;
    }
}
